Tema 03: Control de flujo (Soluciones)

Nota: Estos ejercicios son optativos para hacer al final de la unidad y están pensados para apoyar tu aprendizaje.

1) Realiza un programa que lea dos números por teclado y permita elegir entre 3 opciones en un menú:

  • Mostrar una suma de los dos números
  • Mostrar una resta de los dos números (el primero menos el segundo)
  • Mostrar una multiplicación de los dos números
  • En caso de no introducir una opción válida, el programa informará de que no es correcta.

In [3]:
# Completa el ejercicio aquí
n1 = float(input("Introduce un número: ") )
n2 = float(input("Introduce otro número: ") )
opcion = 0
           
print("¿Qué quieres hacer? \n1) Sumar los dos números\n2) Restar los dos números\n3) Multiplicar los dos números")
opcion = int(input("Introduce un número: ") )     

if opcion == 1:
    print("La suma de",n1,"+",n2,"es",n1+n2)
elif opcion == 2:
    print("La resta de",n1,"-",n2,"es",n1-n2)
elif opcion == 3:
    print("El producto de",n1,"*",n2,"es",n1*n2)
else:
    print("Opción incorrecta")


Introduce un número: 5
Introduce otro número: 5
¿Qué quieres hacer? 
1) Sumar los dos números
2) Restar los dos números
3) Multiplicar los dos números
Introduce un número: 3
El producto de 5.0 * 5.0 es 25.0

2) Realiza un programa que lea un número impar por teclado. Si el usuario no introduce un número impar, debe repetise el proceso hasta que lo introduzca correctamente.


In [5]:
# Completa el ejercicio aquí
numero = 0
while numero % 2 == 0:  # Mientras sea par repetimos el proceso
    numero = int(input("Introduce un número impar: ") )


Introduce un número impar: 4
Introduce un número impar: 2
Introduce un número impar: 3

3) Realiza un programa que sume todos los números pares desde el 0 hasta el 100:

Sugerencia: Puedes utilizar la funciones sum() y range() para hacerlo más fácil. El tercer parámetro en la función range(inicio, fin, salto) indica un salto de números, pruébalo.


In [1]:
# Completa el ejercicio aquí
# range(0, 101, 2)

suma = sum( range(0, 101, 2) )
print(suma)

# Segunda forma con bucles
num = 0
suma = 0

while num <= 100:
    if num % 2 == 0:
        suma += num
    num += 1
    
print(suma)


2550
2550

4) Realiza un programa que pida al usuario cuantos números quiere introducir. Luego lee todos los números y realiza una media aritmética:


In [5]:
# Completa el ejercicio aquí
suma = 0
numeros = int(input("¿Cuántos números quieres introducir? ") )
for x in range(numeros):
    suma += float(input("Introduce un número: ") )
print("Se han introducido",numeros,"números que en total han sumado",suma,"y la media es",suma/numeros)


¿Cuántos numeros quieres introducir? 4
Introduce un número: 3
Introduce un número: 2
Introduce un número: 4
Introduce un número: 6
Se han introducido 4 números que en total han sumado 15.0 y la media es 3.75

5) Realiza un programa que pida al usuario un número entero del 0 al 9, y que mientras el número no sea correcto se repita el proceso. Luego debe comprobar si el número se encuentra en la lista de números y notificarlo:

Consejo: La sintaxis "valor in lista" permite comprobar fácilmente si un valor se encuentra en una lista (devuelve True o False)


In [7]:
# Completa el ejercicio aquí
numeros = [1, 3, 6, 9]

while True:
    numero = int(input("Escribe un número del 0 al 9: "))
    if numero >= 0 and numero <= 9:
        break
if numero in numeros:
    print("El número",numero,"se encuentra en la lista",numeros)
else:
    print("El número",numero,"no se encuentra en la lista",numeros)


Escribe un número del 0 al 9: 3
El número 3 se encuentra en la lista [1, 3, 6, 9]

6) Utilizando la función range() y la conversión a listas genera las siguientes listas dinámicamente:

  • Todos los números del 0 al 10 [0, 1, 2, ..., 10]
  • Todos los números del -10 al 0 [-10, -9, -8, ..., 0]
  • Todos los números pares del 0 al 20 [0, 2, 4, ..., 20]
  • Todos los números impares entre -20 y 0 [-19, -17, -15, ..., -1]
  • Todos los números múltiples de 5 del 0 al 50 [0, 5, 10, ..., 50]

Pista: Utiliza el tercer parámetro de la función range(inicio, fin, salto).


In [2]:
# Completa el ejercicio aquí
print( list( range( 0, 11 ) ) )
print( list( range( -10, 1 ) ) )
print( list( range( 0, 21, 2 ) ) )
print( list( range( -19, 0, 2 ) ) )
print( list( range( 0, 51, 5 ) ) )


[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[-19, -17, -15, -13, -11, -9, -7, -5, -3, -1]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

7) Dadas dos listas, debes generar una tercera con todos los elementos que se repitan en ellas, pero no debe repetise ningún elemento en la nueva lista:


In [20]:
# Completa el ejercicio aquí
lista_1 = ["h",'o','l','a',' ', 'm','u','n','d','o']
lista_2 = ["h",'o','l','a',' ', 'l','u','n','a']

lista_3 = []

for letra in lista_1:
    if letra in lista_2 and letra not in lista_3:
        lista_3.append(letra)

print(lista_3)


['h', 'o', 'l', 'a', ' ', 'u', 'n']